>> %%%%%%%%%%%%%%%%%%%%%
>> % I will record my voice and then shift frequency components
>> %%%%%%%%%%%%%%%%%%%%%
>> recorder = audiorecorder;
>> record(recorder, 5);                     % record a 5 second message
>> play(recorder);                          % check how it sounds
>> soundwave = getaudiodata(recorder);      % extract the soundwave
>> soundfft = fft(soundwave);               % convert to frequency domain
>> length(soundfft)                         % double-check the length

ans =

       40000

>> newsoundfft = [zeros(4000,1); soundfft(2:16001)]; % shift up 4000
>> length(newsoundfft)                      % double-check the length

ans =

       20000

>> newsoundfft = [newsoundfft; conj(newsoundfft(end:-1:1))]; % add in conj coeff
>> length(newsoundfft)                      % triple-check the length

ans =

       40000

>> newsoundwave = ifft(newsoundfft, 'symmetric');  % convert to time domain
>> sound(newsoundwave);                    % now I should sound silly
>>  %%
>>  %% Can we recover the original sound?
>>  %%
>> distortedfft = fft(newsoundwave);        % convert back to frequency domain
>> repairedfft = distortedfft(4001:20000);  % pick off the original coeffs
>> repairedfft = [repairedfft; zeros(4000,1)];  % lost upper frequencies
>> repairedfft = [repairedfft; conj(repairedfft(end:-1:1))]; % conj coeffs
>> repairedwave = ifft(repairedfft, 'symmetric');
>> length(repairedwave)

ans =

       40000

>> sound(repairedwave)
>> sound(soundwave)        % not bad
>> 